]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
boxpointer: Use the right source center for the arrow pointing
authorSardem FF7 <sardemff7.pub@gmail.com>
Wed, 2 Feb 2011 22:38:55 +0000 (23:38 +0100)
committerDan Winship <danw@gnome.org>
Wed, 9 Feb 2011 17:49:07 +0000 (12:49 -0500)
Point the arrow to the center of the sourceActor's content box, rather
than its allocation, in case it has asymmetric padding (as the
rightmost message tray summary item does).

https://bugzilla.gnome.org/show_bug.cgi?id=641728

js/ui/boxpointer.js
src/st/st-theme-node.c

index ecdfeb548bf2f79659e90224b87a2b34e2d0635b..206221b751c449633fed49dd40df2f820f623adc 100644 (file)
@@ -309,9 +309,12 @@ BoxPointer.prototype = {
         this.actor.show();
 
         // Position correctly relative to the sourceActor
+        let sourceNode = sourceActor.get_theme_node();
+        let sourceContentBox = sourceNode.get_content_box(sourceActor.get_allocation_box());
         let [sourceX, sourceY] = sourceActor.get_transformed_position();
         let [sourceWidth, sourceHeight] = sourceActor.get_transformed_size();
-        let [sourceCenterX, sourceCenterY] = [sourceX + (sourceWidth / 2), sourceY + (sourceHeight / 2)];
+        let sourceCenterX = sourceX + sourceContentBox.x1 + (sourceContentBox.x2 - sourceContentBox.x1) / 2;
+        let sourceCenterY = sourceY + sourceContentBox.y1 + (sourceContentBox.y2 - sourceContentBox.y1) / 2;
         let [minWidth, minHeight, natWidth, natHeight] = this.actor.get_preferred_size();
 
         // We also want to keep it onscreen, and separated from the
index 6fb579f095e14d0407318ab3eb50cbdd02a281d0..140d5d12b96f6d985bec8cb5580ccb09d6bbf07b 100644 (file)
@@ -3184,7 +3184,7 @@ st_theme_node_adjust_preferred_height (StThemeNode  *node,
  * st_theme_node_get_content_box:
  * @node: a #StThemeNode
  * @allocation: the box allocated to a #ClutterAlctor
- * @content_box: computed box occupied by the actor's content
+ * @content_box: (out): computed box occupied by the actor's content
  *
  * Gets the box within an actor's allocation that contents the content
  * of an actor (excluding borders and padding). This is a convenience function